Au-delà de la similarité
Le problème des 80 %se produit lorsque la recherche sémantique basique fonctionne pour des requêtes simples mais échoue dans les cas extrêmes. Lorsqu'on effectue une recherche uniquement par similarité, le magasin vectoriel renvoie souvent les extraits les plus similaires numériquement. Cependant, si ces extraits sont presque identiques, le modèle linguistique reçoit des informations redondantes, gaspillant ainsi la fenêtre contextuelle limitée et manquant des points de vue plus larges.
Piliers avancés de récupération
- Relevé maximal marginal (MMR) :Plutôt que de simplement sélectionner les éléments les plus similaires, le MMR équilibre pertinence et diversité afin d'éviter la redondance.$$MMR = \text{argmax}_{d \in R \setminus S} [\lambda \cdot \text{sim}(d, q) - (1 - \lambda) \cdot \max_{s \in S} \text{sim}(d, s)]$$
- Auto-requête :Utilise le modèle linguistique pour transformer le langage naturel en filtres structurés sur les métadonnées (par exemple, filtrer par « Cours 3 » ou « Source : PDF »).
- Compression contextuelle :Réduit les documents récupérés afin d'extraire uniquement les extraits à haute valeur pertinents pour la requête, économisant ainsi des jetons.
Le piège de la redondance
Fournir au modèle linguistique trois versions du même paragraphe ne le rend pas plus intelligent — cela rend simplement la requête plus coûteuse. La diversité est essentielle pour un contexte à haute valeur.
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>
Knowledge Check
You want your system to answer "What did the instructor say about probability in the third lecture?" specifically. Which tool allows the LLM to automatically apply a filter for
{ "source": "lecture3.pdf" }?Challenge: The Token Limit Dilemma
Apply advanced retrieval strategies to solve a real-world constraint.
You are building a RAG system for a legal firm. The documents retrieved are 50 pages long, but only 2 sentences per page are actually relevant to the user's specific query. The standard "Stuff" chain is throwing an
OutOfTokens error because the context window is overflowing with irrelevant text.
Step 1
Identify the core problem and select the appropriate advanced retrieval tool to solve it without losing specific nuances.
Problem: The context window limit is being exceeded by "low-nutrient" text surrounding the relevant facts.
Tool Selection:
Tool Selection:
ContextualCompressionRetrieverStep 2
What specific component must you use in conjunction with this retriever to "squeeze" the documents?
Solution: Use an
LLMChainExtractor as the base for your compressor. This will process the retrieved documents and extract only the snippets relevant to the query, passing a much smaller, highly concentrated context to the final prompt.